---
title: All Features
description:
  Complete list of Unlock Protocol features.
sidebar_position: 5
---

<div class="container">
  <div class="full-width-section">
    <h2>Membership smart contracts</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Deploy membership smart contracts</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Custom contract name</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Custom ticker symbol for membership tokens</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Upgradable smart contracts</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Updatable smart contracts</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Programmable smart contracts</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Membership management</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Time-based memberships</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header"> Customizable membership duration (1sec to 10000+ yrs) </div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Non-expiring memberships</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Set membership price & currency (ERC20)</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Set membership quantity</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Set membership duration</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Free memberships</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Claimable memberships</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Cancel memberships</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Extend memberships</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Membership renewals</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Member lists</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Membership status indicator (valid, expired)</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Renew memberships for others</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Automated membership renewals</div>
        </div>
      </div>
    </div>
    <div class="row">  
      <div class="col">
        <div className="card">
          <div className="card__header">Set maximum memberships per holder</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Subscriptions</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Recurring subscriptions onchain</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Pay for subscriptions via credit cards</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Pay for subscriptions via stablecoins, native tokens, or ERC-20 tokens</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Airdrops</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Airdrop NFTs</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Airdrop NFTs in bulk</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Airdrop to email</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Wallet-less onboarding</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Walletless airdrop</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Email / password support for login</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Password reset</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Credit cards</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Credit card payments</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Stripe integration</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Cryptocurrency support</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Cryptocurrency payments</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Base currency support including ETH, USDC, etc.</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Custom ERC-20 currency support</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Wallet support</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Support for multiple wallets including Metamask, Rainbow, Coinbase Wallet, etc.</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">WalletConnect support</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Apple Wallet and Google Wallet support</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>NFT support</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">NFT minting</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Image customization</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Token URI customization</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Metadata customization</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">ERC-721 support</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Set NFT image contract-wide</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Set NFT image per token</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Dynamic NFT support</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">NFT video images</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Custom metadata properties</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Custom metadata levels</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Custom metadata stats</div>
        </div>
      </div>
   </div>
   <div class="row">  
      <div class="col">
        <div className="card">
          <div className="card__header">NFTs visible on OpenSea, Blur, and other marketplaces</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Receive NFTs via email</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">NFT lending</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">NFT sharing</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Transfers</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Transferable NFTs</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Enable or disable transfers</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Soul bound tokens</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Non-transferable (”soul bound”) NFTs</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Email support</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Email reply-to customization</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Email sender customization</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Send email to members</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Customizable checkout flows</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Customizable look-and-feel</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Custom logo on checkout</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Collect email address on purchase</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Password-protected checkout</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Captcha-protected checkout</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Checkout flow previews</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Allowlists</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Events and Ticketing</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Event RSVPs and registration</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Event ticketing</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Event check-in & verification</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Event “sold out” indicator</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Event ticketing time</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Event ticketing location</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Event ticketing timezone</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Event ticketing previews</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Receive ticket via email</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">QR code tickets and registrations</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Certifications and Credentials</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Onchain certificates & credentials</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Certificate purchase email customization</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Certificate airdrop email customization</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Certification issuer name support</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Referrer, affiliate, and platform monetization</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Set referrer fees</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Set affiliate fees</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Set platform fees</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Onchain Hooks</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Key purchase hook</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Key cancel hook</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Valid key hook</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Token URI hook</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Key transfer hook</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Key extend hook</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Key grant hook</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Access control</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Role-based access controls</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Receipts</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Purchase receipts</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Frameworks and integration support</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">web3js</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">ethers</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Hardhat</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">npm package</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">React integration</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">JavaScript integration</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Sign In With Ethereum</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Sign In With Ethereum support</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Technical features</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Full API</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Webhooks support</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Subgraph integration</div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Websub support</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Open source protocol</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">3x audited smart contracts</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Token gating integration</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Optimistic and pessimistic unlocking</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Front-end access control (token gating)</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Back-end access control (token gating)</div>
        </div>
      </div>
    </div>
  </div>
  
  <div class="full-width-section">
    <h2>Learning and support resources</h2>
    <div class="row">
      <div class="col">
        <div className="card">
          <div className="card__header">Video tutorials</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Extensive implementation guides and documentation</div>
        </div>
      </div>
      <div class="col">
        <div className="card">
          <div className="card__header">Responsive and supportive community</div>
        </div>
      </div>
    </div>
  </div>
</div>
